import {
  config
} from "../config"

class Token {
  constructor() {
    this.verifyUrl = `${config.api_base_url}token/verify`;
    this.tokenUrl = `${config.api_base_url}token`;
  }

  verify() {
    const token = wx.getStorageSync("token");
    if (!token) {
      this.getToken();
    } else {
      this.onVerifyToken(token);
    }
  }

  getToken(callBack) {
    // 登录获取 token
    wx.login({
      success: (res) => {
        if (res.code) {
          wx.request({
            url: this.tokenUrl,
            method: "POST",
            data: {
              account: res.code,
              type: 100
            },
            success: (res) => {
              // console.log(res.data);
              const code = res.statusCode.toString();
              if (code.startsWith('2')) {
                wx.setStorageSync('token', res.data.token);
                callBack && callBack(res.data.token);
              }
            }
          })
        }
      }
    })
  }

  onVerifyToken(token) {
    wx.request({
      url: this.verifyUrl,
      method: 'POST',
      data: {
        token
      },
      success: (res) => {
        // console.log(res.data);
         if(!res.data.is_valide) {
           this.getToken();
         }
      }
    })
  }

}


export {
  Token
}